package com.example.service.impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.common.ResultCode;
import com.example.dao.*;
import com.example.entity.Baoming;
import com.example.exception.CustomException;
import com.example.service.BaomingService;
import com.example.vo.BaomingVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;

@Service("baomingService")
public class BaomingServiceImpl extends ServiceImpl<BaomingDao, Baoming> implements BaomingService {

    @Resource
    private BaomingDao baomingDao;

    public Baoming add(Baoming baoming) {
		
	   //youquchong1
        baoming.setAddtime(new Date());
        baomingDao.insert(baoming);
        return baoming;
    }
	
	
	
    public void delete(Long id) {
        baomingDao.deleteById(id);
    }
	

    public void update(Baoming baoming) {
        //youquchong2
        baomingDao.updateById(baoming);
    }
	
	@Override
    public List<Map<String, Object>> daochuexcel() {
        return baomingDao.daochuexcel();
    }

    @Override
    public Baoming findById(Integer id) {
        return baomingDao.selectById(id);
    }

    public BaomingVo findPage(BaomingVo baomingVo) {
        LambdaQueryWrapper<Baoming> wrapper = Wrappers.lambdaQuery();
		wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getJingsaimingcheng()), Baoming::getJingsaimingcheng,baomingVo.getJingsaimingcheng());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getJibie()), Baoming::getJibie,baomingVo.getJibie());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getSuanfaleijingsai()), Baoming::getSuanfaleijingsai,baomingVo.getSuanfaleijingsai());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getZuopinleijingsai()), Baoming::getZuopinleijingsai,baomingVo.getZuopinleijingsai());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getJingsaijiezhiriqi()), Baoming::getJingsaijiezhiriqi,baomingVo.getJingsaijiezhiriqi());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getBaomingriqi()), Baoming::getBaomingriqi,baomingVo.getBaomingriqi());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getShangchuangerenziliao()), Baoming::getShangchuangerenziliao,baomingVo.getShangchuangerenziliao());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getXuehao()), Baoming::getXuehao,baomingVo.getXuehao());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getXingming()), Baoming::getXingming,baomingVo.getXingming());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getYuanxi()), Baoming::getYuanxi,baomingVo.getYuanxi());        wrapper.like(ObjectUtils.isNotEmpty(baomingVo.getBanji()), Baoming::getBanji,baomingVo.getBanji());        
        Page<Baoming> page = new Page<>(baomingVo.getCurrent(),baomingVo.getCurrentNum());
        baomingDao.selectPage(page,wrapper);
        List<Baoming> baomings = page.getRecords();
        baomingVo.setList(baomings);
        baomingVo.setPages(page.getPages());
        baomingVo.setTotal(page.getTotal());
        baomingVo.setCurrent(page.getCurrent());
        baomingVo.setCurrentNum(page.getSize());
        return baomingVo;
    }

    @Override
    public void deleteList(List<Baoming> list) {
        List<Integer> ids =  list.stream().map(Baoming::getId).collect(Collectors.toList());
        baomingDao.deleteBatchIds(ids);
    }
	
	
	
	
	
	//youxxianxci
}
